package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 不动产参数业务对象 em_properties
 *
 * @author ruoyi
 * @date 2024-10-25
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class EmPropertiesBo extends BaseEntity {

    /**
     * 不动产id
     */
    @NotNull(message = "不动产id不能为空", groups = { EditGroup.class })
    private Long emId;

    /**
     * 不动产编码
     */
    @NotBlank(message = "不动产编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emCode;

    /**
     * 不动产名称
     */
    @NotBlank(message = "不动产名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emName;

    /**
     * 不动产类型
     */
    @NotBlank(message = "不动产类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emType;

    /**
     * 不动产状态
     */
    @NotBlank(message = "不动产状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emStatus;

    /**
     * 所属子公司
     */
    @NotBlank(message = "所属子公司不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emCompany;

    /**
     * 具体地址
     */
    @NotBlank(message = "具体地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emLocation;

    /**
     * 面积（平方米）
     */
    @NotNull(message = "面积（平方米）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emArea;

    /**
     * 不动产所有权状况
     */
    @NotBlank(message = "不动产所有权状况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emOwnershipS;

    /**
     * 所有权单位名称
     */
    @NotBlank(message = "所有权单位名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emOwnershipName;

    /**
     * 混合产权情况
     */
    @NotBlank(message = "混合产权情况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emOwnershipMix;

    /**
     * 是否抵押担保
     */
    @NotBlank(message = "是否抵押担保不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMortgageY;

    /**
     * 抵押担保对象
     */
    @NotBlank(message = "抵押担保对象不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMortgageName;

    /**
     * 不动产权证号
     */
    @NotBlank(message = "不动产权证号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emCertificateN;

    /**
     * 房产证号
     */
    @NotBlank(message = "房产证号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emCertificateF;

    /**
     * 土地证号
     */
    @NotBlank(message = "土地证号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emCertificateT;

    /**
     * 土地性质
     */
    @NotBlank(message = "土地性质不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emLandnature;

    /**
     * 接收时间
     */
    @NotNull(message = "接收时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date emHoldingtime;

    /**
     * 接收方式
     */
    @NotBlank(message = "接收方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emHoldingway;

    /**
     * 套数
     */
    @NotNull(message = "套数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emTao;

    /**
     * 是否入账
     */
    @NotBlank(message = "是否入账不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emFinAccount;

    /**
     * 账面价值（万元）
     */
    @NotNull(message = "账面价值（万元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emFinBook;

    /**
     * 原始账面价值（万元）
     */
    @NotNull(message = "原始账面价值（万元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emFinObook;

    /**
     * 是否开展资产评估
     */
    @NotBlank(message = "是否开展资产评估不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emEval;

    /**
     * 现评估价格（万元）
     */
    @NotNull(message = "现评估价格（万元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emEvalPrice;

    /**
     * 评估时间
     */
    @NotNull(message = "评估时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date emEvalTime;

    /**
     * 评估机构
     */
    @NotBlank(message = "评估机构不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emEvalAgency;

    /**
     * 资产录入表修改人员
     */
    @NotBlank(message = "资产录入表修改人员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emInPaper;

    /**
     * 资产录入表补充1
     */
    @NotBlank(message = "资产录入表补充1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emInBc1;

    /**
     * 资产录入表补充2
     */
    @NotBlank(message = "资产录入表补充2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emInBc2;

    /**
     * 资产录入表补充3
     */
    @NotBlank(message = "资产录入表补充3不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emInBc3;

    /**
     * 资产录入表备注
     */
    @NotBlank(message = "资产录入表备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emInLabel;

    /**
     * 资产录入表附件地址
     */
    @NotBlank(message = "资产录入表附件地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emInFlocation;

    /**
     * 闲置时长（月）
     */
    @NotNull(message = "闲置时长（月）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMonthIdle;

    /**
     * 闲置原因
     */
    @NotBlank(message = "闲置原因不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMonthIdleR;

    /**
     * 使用时长（月）
     */
    @NotNull(message = "使用时长（月）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMonthUse;

    /**
     * 使用情况
     */
    @NotBlank(message = "使用情况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emOwnWay;

    /**
     * 招租方式
     */
    @NotBlank(message = "招租方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsWay;

    /**
     * 招租平台
     */
    @NotBlank(message = "招租平台不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsPlm;

    /**
     * 招租单价确定
     */
    @NotBlank(message = "招租单价确定不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsUnitw;

    /**
     * 招租底价（元/平米/月）
     */
    @NotNull(message = "招租底价（元/平米/月）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMerchantsDj;

    /**
     * 招租审批表修改人员
     */
    @NotBlank(message = "招租审批表修改人员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMeexcelPaper;

    /**
     * 招租审批表补充1
     */
    @NotBlank(message = "招租审批表补充1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMeexcelBc1;

    /**
     * 招租审批表补充2
     */
    @NotBlank(message = "招租审批表补充2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMeexcelBc2;

    /**
     * 招租审批表补充3
     */
    @NotBlank(message = "招租审批表补充3不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMeexcelBc3;

    /**
     * 招租审批表备注
     */
    @NotBlank(message = "招租审批表备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMeexcelLabel;

    /**
     * 招租审批表附件地址
     */
    @NotBlank(message = "招租审批表附件地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMeexcelFlocation;

    /**
     * 招租时竞价户数
     */
    @NotNull(message = "招租时竞价户数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMerchantsNumb;

    /**
     * 合同编码
     */
    @NotBlank(message = "合同编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgreementNo;

    /**
     * 合同金额（元）
     */
    @NotNull(message = "合同金额（元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emAgreementPrice;

    /**
     * 单价（元/平米/月）
     */
    @NotNull(message = "单价（元/平米/月）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMerchantsUnitp;

    /**
     * 年租金（万元/年）
     */
    @NotNull(message = "年租金（万元/年）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMerchantsTotal;

    /**
     * 中标人名称
     */
    @NotBlank(message = "中标人名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsObject;

    /**
     * 实际承租人名称
     */
    @NotBlank(message = "实际承租人名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsReal;

    /**
     * 是否原租户承租
     */
    @NotBlank(message = "是否原租户承租不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsYn;

    /**
     * 历史租户
     */
    @NotBlank(message = "历史租户不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsHistory;

    /**
     * 出租时长（月）
     */
    @NotNull(message = "出租时长（月）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emMerchantsYears;

    /**
     * 出租合同开始时间
     */
    @NotNull(message = "出租合同开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date emMerchantsBegin;

    /**
     * 出租合同截止时间
     */
    @NotNull(message = "出租合同截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date emMerchantsEnd;

    /**
     * 租金收取方式
     */
    @NotBlank(message = "租金收取方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsCollectionway;

    /**
     * 租金收取途径
     */
    @NotBlank(message = "租金收取途径不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emMerchantsPayway;

    /**
     * 押金金额（元）
     */
    @NotNull(message = "押金金额（元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emDepossit;

    /**
     * 合同管理表表修改人员
     */
    @NotBlank(message = "合同管理表表修改人员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgexcelPaper;

    /**
     * 合同管理表补充1
     */
    @NotBlank(message = "合同管理表补充1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgexcelBc1;

    /**
     * 合同管理表补充2
     */
    @NotBlank(message = "合同管理表补充2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgexcelBc2;

    /**
     * 合同管理表补充3
     */
    @NotBlank(message = "合同管理表补充3不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgexcelBc3;

    /**
     * 合同管理表备注
     */
    @NotBlank(message = "合同管理表备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgexcelLabel;

    /**
     * 合同管理表附件地址
     */
    @NotBlank(message = "合同管理表附件地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emAgexcelFlocation;

    /**
     * 欠租金额
     */
    @NotNull(message = "欠租金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emOweTotal;

    /**
     * 违约金计算方式
     */
    @NotBlank(message = "违约金计算方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emLiquWay;

    /**
     * 本年度应收租金（元）
     */
    @NotNull(message = "本年度应收租金（元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emRentAble;

    /**
     * 本年度实收租金（元）
     */
    @NotNull(message = "本年度实收租金（元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emRentPaid;

    /**
     * 逾期开始时间
     */
    @NotNull(message = "逾期开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date emLateStart;

    /**
     * 累计逾期天数（天）
     */
    @NotNull(message = "累计逾期天数（天）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emLateAllday;

    /**
     * 累计逾期金额（元）
     */
    @NotNull(message = "累计逾期金额（元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emLateMoney;

    /**
     * 累计违约金金额（元）
     */
    @NotNull(message = "累计违约金金额（元）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emLateForpay;

    /**
     * 最长欠租时间（月）
     */
    @NotNull(message = "最长欠租时间（月）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long emOweLong;

    /**
     * 租金管理表修改人员
     */
    @NotBlank(message = "租金管理表修改人员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emRenexcelPaper;

    /**
     * 租金管理表补充1
     */
    @NotBlank(message = "租金管理表补充1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emRenexcelBc1;

    /**
     * 租金管理表补充2
     */
    @NotBlank(message = "租金管理表补充2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emRenexcelBc2;

    /**
     * 租金管理表补充3
     */
    @NotBlank(message = "租金管理表补充3不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emRenexcelBc3;

    /**
     * 租金管理表备注
     */
    @NotBlank(message = "租金管理表备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emRenexcelLabel;

    /**
     * 租金管理表附件地址
     */
    @NotBlank(message = "租金管理表附件地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emRenexcelFlocation;

    /**
     * 表单类型 1=资产录入 2=招标审批 3=合同管理 4=租金管理
     */
    @NotNull(message = "表单类型 1=资产录入 2=招标审批 3=合同管理 4=租金管理不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long formDataType;


}
